home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / recent / iib122.lha / IIB / Threads / Additional / IARexx.lha / MakeSpherical.irx < prev    next >
Text File  |  1997-09-18  |  947b  |  41 lines

  1. /* Makes the selected object into a sphere */
  2. /* size is 100 units, scale as desired     */
  3. options results
  4.  
  5. if ~exists('libs:rexxmathlib.library')
  6.         then do
  7.    notify 'rexxmathlib.library is needed'
  8.    exit(0)
  9. end
  10.  
  11.  
  12.  
  13. call addlib('rexxmathlib.library',0,-30)
  14.  
  15. address "Imagine.1"
  16.  
  17. displayrexxptr on
  18. getgeometry
  19. getaxisinfo
  20.  
  21.  
  22. do i= 1 to pnt_num
  23.         normr = sqrt( (pnt_x.i-axis_position_x)**2 + (pnt_y.i-axis_position_y)**2 + (pnt_z.i-axis_position_z)**2 )
  24.         if normr = 0
  25.                 then do
  26.                         notify "No point may lie on the axis"
  27.                         displayrexxptr off
  28.                         exit(10)
  29.                 end
  30.         normr = 100 / normr
  31.         pnt_x.i = (pnt_x.i-axis_position_x)*normr + axis_position_x
  32.         pnt_y.i = (pnt_y.i-axis_position_y)*normr + axis_position_y
  33.         pnt_z.i = (pnt_z.i-axis_position_z)*normr + axis_position_z
  34.  
  35.  
  36. end
  37.  
  38. setgeometry
  39. displayrexxptr off
  40. beep
  41. exit